package beans;

import java.io.Serializable;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

/**
 * Classe para objetos do tipo evento onde serão contidos valores e métodos para o mesmo
 * @author Everton de Oliveira & Robson Medeiros
 */
public class Evento implements Serializable{

    private int idEvento;
    private Usuario dono;
    private String titulo;
    private Date data;
    private String local;
    private List<Usuario> participantes = new LinkedList<Usuario>();

    //Construtor da classe
    public Evento(int idEvento, Usuario dono, String titulo, Date data, String local) {
        this.idEvento = idEvento;
        this.dono = dono;
        this.titulo = titulo;
        this.data = data;
        this.local = local;
    }

    /**
     *
     * @return Date - data do evento
     */
    public Date getData() {
        return data;
    }

    /**
     *
     * @return Usuario - dono do evento
     */
    public Usuario getDono() {
        return dono;
    }

    /**
     *
     * @return int - id do evento
     */
    public int getIdEvento() {
        return idEvento;
    }

    /**
     * atualizar ID do evento
     * @param idEvento
     */
    public void setIdEvento(int idEvento) {
        this.idEvento = idEvento;
    }

    /**
     *
     * @return String - local do evento
     */
    public String getLocal() {
        return local;
    }

    /**
     *
     * @return list<Usuario> - retorna lista de participantes do evento
     */
    public List<Usuario> getListaParticipantes() {
        return participantes;
    }

    /**
     *
     * @return String - título do evento
     */
    public String getTitulo() {
        return titulo;
    }

    /**
     *
     * @return String - participantes adicionados no evento
     */
    public String getParticipantes() {
        String participantesAdicionados = "{";
        if (!participantes.isEmpty()) {
            for (Usuario usuario : participantes) {
                participantesAdicionados += usuario.getLogin() + ",";
            }
            participantesAdicionados = participantesAdicionados.substring(0, participantesAdicionados.length() - 1);
        }

        participantesAdicionados += "}";
        return participantesAdicionados;
    }
}
